From d12804d4c05d125c8de3187da29013bef6ae5d0b Mon Sep 17 00:00:00 2001 From: Bond-009 Date: Sun, 4 Feb 2018 21:53:35 +0100 Subject: Ocelots don't take fall damage (#4171) --- src/Mobs/Chicken.cpp | 12 +++++++----- src/Mobs/Chicken.h | 2 +- src/Mobs/Ocelot.cpp | 10 ++++++++++ src/Mobs/Ocelot.h | 1 + 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/Mobs/Chicken.cpp b/src/Mobs/Chicken.cpp index e2caa6f67..242fe5aa0 100644 --- a/src/Mobs/Chicken.cpp +++ b/src/Mobs/Chicken.cpp @@ -74,10 +74,12 @@ void cChicken::GetDrops(cItems & a_Drops, cEntity * a_Killer) -void cChicken::HandleFalling(void) +bool cChicken::DoTakeDamage(TakeDamageInfo & a_TDI) { - // empty - chickens don't take fall damage -} - - + if (a_TDI.DamageType == dtFalling) + { + return false; + } + return super::DoTakeDamage(a_TDI); +} diff --git a/src/Mobs/Chicken.h b/src/Mobs/Chicken.h index 0dfc5e3d6..bb12ce9b3 100644 --- a/src/Mobs/Chicken.h +++ b/src/Mobs/Chicken.h @@ -27,7 +27,7 @@ public: a_Items.Add(E_ITEM_SEEDS); } - virtual void HandleFalling(void) override; + virtual bool DoTakeDamage(TakeDamageInfo & a_TDI) override; private: diff --git a/src/Mobs/Ocelot.cpp b/src/Mobs/Ocelot.cpp index 50dd249c0..5e94cacb9 100644 --- a/src/Mobs/Ocelot.cpp +++ b/src/Mobs/Ocelot.cpp @@ -218,3 +218,13 @@ bool cOcelot::IsCatSittingOnBlock(cWorld * a_World, Vector3d a_BlockPosition) + +bool cOcelot::DoTakeDamage(TakeDamageInfo & a_TDI) +{ + if (a_TDI.DamageType == dtFalling) + { + return false; + } + + return super::DoTakeDamage(a_TDI); +} diff --git a/src/Mobs/Ocelot.h b/src/Mobs/Ocelot.h index 75758a973..b8efc60ee 100644 --- a/src/Mobs/Ocelot.h +++ b/src/Mobs/Ocelot.h @@ -35,6 +35,7 @@ public: { a_Items.Add(E_ITEM_RAW_FISH); } + virtual bool DoTakeDamage(TakeDamageInfo & a_TDI) override; // Get functions bool IsSitting (void) const override { return m_IsSitting; } -- cgit v1.2.3